Computational complexity theory is a branch of computer science that focuses on classifying computational problems according to their inherent difficulty. One such classification is “NP”, which is the class of problems that can be solved in polynomial time by an algorithm running on a non-deterministic Turing machine. An algorithm is said to run in polynomial time if its running time is upper-bounded by a polynomial function of the size of the input for the algorithm, i.e., T(n)ϵO(nk) for some constant k. The present invention might be compared to the Newton Method, the Davis-Putnam-Logemann-Loveland (DPLL) algorithm, and the Conflict-Driven Clause Learning (CDCL) algorithm.